home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_09_08 / 9n08010a < prev    next >
Text File  |  1991-07-08  |  626b  |  19 lines

  1. /* _Dtest function <197> IEEE 754 version */
  2. #include "xmath.h"
  3.  
  4. short _Dtest(double *px)
  5.         {       /* categorize *px */
  6.         unsigned short *ps = (unsigned short *)px;
  7.         short xchar = (ps[_D0] & _DMASK) >> _DOFF;
  8.  
  9.         if (xchar == _DMAX)     /* NaN or INF */
  10.                 return (ps[_D0] & _DFRAC || ps[_D1]
  11.                         || ps[_D2] || ps[_D3] ? NAN : INF);
  12.         else if (0 < xchar || ps[_D0] & _DFRAC
  13.                 || ps[_D1] || ps[_D2] || ps[_D3])
  14.                 return (FINITE);        /* finite */
  15.         else
  16.                 return (0);     /* zero */
  17.         }
  18.  
  19.